package com.agri.service;

import com.agri.dto.CartItemDTO;
import com.agri.result.Result;

import java.util.List;

/**
 * 购物车服务接口
 * 定义购物车商品的增删改查操作
 *
 * @author Agri-Fin-Sale Team
 * @since 2025-11-05
 */
public interface CartService {
    /**
     * 添加商品到购物车
     */
    Result<?> addToCart(CartItemDTO cartItemDTO);

    /**
     * 更新购物车商品数量
     */
    Result<?> updateCartItem(Long itemId, Integer quantity);

    /**
     * 删除购物车商品
     */
    Result<?> removeCartItem(Long itemId);

    /**
     * 清空购物车
     */
    Result<?> clearCart(Long userId);

    /**
     * 获取用户购物车列表
     */
    Result<?> getCartList(Long userId);

    /**
     * 批量删除购物车商品
     */
    Result<?> removeCartItems(List<Long> itemIds);

    /**
     * 获取购物车商品数量
     */
    Result<?> getCartCount(Long userId);
}